ALEGSA.com.ar

Definición de Compresión Huffman

Significado de Compresión Huffman: Algoritmo para la compresión de archivos sin pérdida de datos desarrollado por David Huffman. Para la compresión se basa en la frecuencia de ...
26-06-2023 00:00

 


Definición de Compresión Huffman

 

Algoritmo para la compresión de archivos sin pérdida de datos desarrollado por David Huffman. Para la compresión se basa en la frecuencia de ocurrencia de un símbolo en un archivo que será comprimido. El algoritmo Huffman está basado en codificación estadística, lo que significa que la probabilidad de un símbolo tiene una directa relación con el tamaño de su representación. Hay mayor probabilidad de ocurrencia de un símbolo, mientras más corto sea el tamaño de su representación en bits.

En cualquier fichero, ciertos caracteres son usados más que otros. Usando representación binaria, el número de bits requeridos para representar cada caracter depende del número de caracteres que tienen que ser representados. Por ejemplo, si se usa un bit, significa que pueden representarse como máximo dos caracteres (0 un caracter, y 1 el otro). Si se usan dos bits significa que pueden representarse cuatro caracteres (00, 01, 10, 11, cada uno representa un caracter), y así sucesivamente.

La compresión Huffman es un sistema de longitud variable que asigna los códigos más pequeños a aquellos caracteres más frecuentemente usados y los códigos más largos a aquellos menos frecuentes. Esto sirve para reducir el tamaño de los archivos.

Veamos un ejemplo. Supongamos que en un archivo de datos se tiene la siguiente información: AAAAAABBBBCC. Donde A tiene una frecuencia de 6, B de 4 y C de 2. Cada caracter es representado usando una longitud fija de códigos de dos bits, entonces el número de bits requeridos para almacenar el archivo sería 24, por ejemplo (2 bits x 6) + (2 bits x 4) + (2 bits x 2) = 24 bits.

Si esa información es comprimida usando compresión Huffman, el caracter más frecuente debería ser representado por los bits más pequeños como sigue:

A por el código 0 (1 bit)
B por el código 10 (2 bits)
C por el código 11 (2 bits)
Por lo tanto el tamaño del archivo pasará a ser de 18, (1 bit x 6) + (2 bits x 4) + (2 bits x 2) = 18 bits

O sea: 000000101010101111

En el ejemplo anterior, los caracteres que se repetían más frecuentemente son asignados al código más pequeño, resultando en un menor número de bits en el archivo final comprimido.


Implementación de la compresión Huffman



Para implementar el algoritmo de compresión de Huffman, en primer lugar se realiza un análisis de frecuencia de los caracteres presentes en el archivo a comprimir. Este análisis permite determinar qué caracteres son más frecuentes y cuáles son menos utilizados.

Una vez obtenida esta información, se procede a construir un árbol de codificación de Huffman. Este árbol se forma asignando códigos binarios a cada caracter en función de su frecuencia de ocurrencia. Los caracteres más frecuentes son representados por códigos más cortos, mientras que los menos frecuentes reciben códigos más largos.

El árbol de Huffman se construye utilizando una técnica denominada "emparejamiento de árboles", en la cual se van uniendo los nodos con menor frecuencia hasta formar un único árbol. Los códigos binarios de cada caracter se obtienen recorriendo el árbol de manera binaria, asignando 0 cuando se va hacia la izquierda y 1 cuando se va hacia la derecha.

Una vez construido el árbol de Huffman y obtenidos los códigos para cada caracter, se procede a reemplazar los caracteres en el archivo original por sus correspondientes códigos de Huffman. De esta manera, el archivo comprimido contendrá una secuencia de bits que representa los caracteres originales de manera más eficiente.

Es importante destacar que la compresión de Huffman es un método de compresión sin pérdida de datos, lo que significa que al descomprimir el archivo se obtendrá una copia exacta del archivo original. Este método es ampliamente utilizado en diferentes tipos de datos, como imágenes, audio y video, para reducir el tamaño de los archivos y optimizar su almacenamiento o transmisión.


Resumen: Compresión Huffman



El algoritmo de compresión Huffman asigna códigos más pequeños a los caracteres más frecuentes, lo que reduce el tamaño del archivo sin perder datos.




¿Qué es la compresión Huffman?



La compresión Huffman es un algoritmo utilizado para comprimir archivos sin pérdida de datos. Fue desarrollado por David Huffman y se basa en la frecuencia de ocurrencia de un símbolo en un archivo que será comprimido. El algoritmo utiliza codificación estadística, lo que significa que la probabilidad de un símbolo tiene una directa relación con el tamaño de su representación. Cuanto mayor sea la probabilidad de ocurrencia de un símbolo, más corto será el tamaño de su representación en bits.


¿Cuál es el objetivo de la compresión Huffman?



El objetivo de la compresión Huffman es reducir el tamaño de los archivos sin perder información. Al comprimir un archivo utilizando este algoritmo, se logra eliminar la redundancia de los datos y se asignan códigos más cortos a los símbolos que ocurren con mayor frecuencia. Esto permite ahorrar espacio de almacenamiento y facilita la transferencia de archivos a través de redes de comunicación.


¿Qué ventajas tiene la compresión Huffman?



La compresión Huffman ofrece varias ventajas. En primer lugar, permite reducir el tamaño de los archivos, lo que se traduce en un ahorro de espacio de almacenamiento. Además, al tener archivos más pequeños, la transferencia de datos se vuelve más rápida y eficiente. Además, la compresión Huffman es un algoritmo sin pérdida, lo que significa que los archivos comprimidos se pueden descomprimir y recuperar completamente sin ninguna pérdida de calidad o información.


¿Cuál es el proceso de compresión Huffman?



El proceso de compresión Huffman consta de varias etapas. En primer lugar, se realiza un análisis del archivo para determinar la frecuencia de ocurrencia de cada símbolo. Luego, se construye un árbol de codificación basado en estas frecuencias, asignando códigos más cortos a los símbolos más frecuentes. Después, se recorre el archivo original y se reemplaza cada símbolo por su correspondiente código Huffman. Finalmente, se crea el archivo comprimido que contiene los códigos Huffman y una tabla de mapeo para su descompresión.


¿Es la compresión Huffman segura?



La compresión Huffman es un algoritmo de compresión, no de cifrado. Esto significa que su objetivo principal es reducir el tamaño de los archivos y no asegurar la confidencialidad de los datos. Sin embargo, en algunos casos, los archivos comprimidos pueden contener cierto nivel de compresión, lo que dificultaría la recuperación de la información de manera legible. Por lo tanto, si se requiere seguridad en los datos, es necesario utilizar técnicas adicionales de cifrado junto con la compresión Huffman.


¿Cuándo se suele utilizar la compresión Huffman?



La compresión Huffman se utiliza en diversas aplicaciones y escenarios. Es comúnmente utilizada en la compresión de archivos de texto, como documentos, archivos HTML y código fuente de programas. También se utiliza en la compresión de imágenes, audio y video, aunque su efectividad puede variar dependiendo de las características y patrones de los datos. En general, la compresión Huffman es ampliamente utilizada en cualquier situación en la que se busque reducir el tamaño de los archivos sin perder información.





Autor: Leandro Alegsa
Actualizado: 26-06-2023

¿Cómo citar este artículo?

Alegsa, Leandro. (2023). Definición de Compresión Huffman. Recuperado de https://www.alegsa.com.ar/Dic/compresion_huffman.php

Diccionario informático



 


articulos
Asistente IA
Escribe tu consulta sobre informática y tecnologías al asistente de Inteligencia Artificial
¡te responderá en segundos!




* ACLARACIÓN: el asistente ha sido entrenado para responder tus dudas con muy buenos resultados, pero puede equivocarse, esta tecnología aún está en desarrollo. Te sugiero dejar tu email para que te contactemos para corregir la respuesta de la IA: leemos todas las consultas y respuestas.


Usa nuestro buscador para definiciones, informática y tecnologías